/*******************************************************************************

    Input port macros used by games in the galpanic.c driver

*******************************************************************************/


/**************************** Inputs ****************************/

#define GALS_PANIC_JOYSTICK_4WAY(PL)\
	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(PL)\
	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )

#define GALS_PANIC_JOYSTICK_8WAY(PL)\
	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(PL)\
	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(PL)\
	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(PL)\
	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(PL)\
	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )

#define SYSTEM_SERVICE\
	PORT_START("SYSTEM")\
	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\
	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )\
	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )\
	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )\
	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )\
	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )\
	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )

#define SYSTEM_NO_SERVICE\
	PORT_START("SYSTEM")\
	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\
	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )\
	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )\
	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )\
	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )\
	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )

#define SYSTEM_NO_TILT\
	PORT_START("SYSTEM")\
	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\
	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )\
	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )\
	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )\
	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )\
	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )

/**************************** Coinage & Dip Swicthes ****************************/

#define COINAGE_WORLD\
	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )	PORT_DIPLOCATION("SW1:5,6")\
	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )\
	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )\
	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )\
	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )	PORT_DIPLOCATION("SW1:7,8")\
	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_2C ) )\
	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_3C ) )\
	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_4C ) )\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )

#define COINAGE_JAPAN\
	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )	PORT_DIPLOCATION("SW1:5,6")\
	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )\
	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )\
	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )\
	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )	PORT_DIPLOCATION("SW1:7,8")\
	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )\
	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )\
	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )

#define COINAGE_NO_TEST_LOC\
	PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" )\
	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )	PORT_DIPLOCATION("SW1:2")\
	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )\
	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )\
	PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW1:3" )\
	PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) 		PORT_DIPLOCATION("SW1:4")\
	PORT_DIPSETTING(      0x0008, "Mode 1" )\
	PORT_DIPSETTING(      0x0000, "Mode 2" )\
	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )	PORT_DIPLOCATION("SW1:5,6")\
	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )\
	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_2C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\
	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_3C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\
	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )	PORT_DIPLOCATION("SW1:7,8")\
	PORT_DIPSETTING(      0x0080, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )\
	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_2C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\
	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_3C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)

#define COINAGE_TEST_LOC\
	PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" )\
	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )	PORT_DIPLOCATION("SW1:2")\
	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )\
	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )\
	PORT_SERVICE_DIPLOC(  0x0004, IP_ACTIVE_LOW, "SW1:3" )\
	PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) 		PORT_DIPLOCATION("SW1:4")\
	PORT_DIPSETTING(      0x0008, "Mode 1" )\
	PORT_DIPSETTING(      0x0000, "Mode 2" )\
	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )	PORT_DIPLOCATION("SW1:5,6")\
	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )\
	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_2C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\
	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_3C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\
	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )	PORT_DIPLOCATION("SW1:7,8")\
	PORT_DIPSETTING(      0x0080, DEF_STR( 2C_1C ) )\
	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )\
	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_2C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\
	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_3C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\
	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )	PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)


#define DIFFICULTY_DEMO_SOUNDS\
	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )	PORT_DIPLOCATION("SW2:1,2")\
	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )\
	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )\
	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )\
	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )\
	PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )\
	PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "SW2:4" )\
	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )	PORT_DIPLOCATION("SW2:5,6")\
	PORT_DIPSETTING(      0x0010, "2" )\
	PORT_DIPSETTING(      0x0030, "3" )\
	PORT_DIPSETTING(      0x0020, "4" )\
	PORT_DIPSETTING(      0x0000, "5" )\
	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )	PORT_DIPLOCATION("SW2:7")\
	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )\
	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )\
	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW2:8" )
